class Util {
  isObject(value: any): boolean {
    return value !== null && typeof value === 'object';
  }

  /**
   * 获取对象后代属性的值。
   * @param obj 任意对象，作为查找属性的起点。
   * @param path 属性路径，用"."分隔多层属性。
   * @returns 返回找到的属性值；如果未找到，则返回undefined。
   */
  getDescendantProp(obj: any, path: string): any {
    // 直接在对象上检查是否存在指定的属性
    if (obj[path] !== undefined) {
      return obj[path];
    }
    // 使用reduce方法递归查找属性值
    return path.split('.').reduce((acc, part) => acc && acc[part], obj);
  }
}

export enum Language {
  English,
  Chinese
}

const util = new Util();
export default util;
